寫完勒索軟體解密工具發展史與連結後,朋友問了個問題,現在 AI、量子電腦如此發達,有沒有可能使用暴力破解被勒索軟體加密的檔案?畢竟我們無法得知何時、甚至是否會有免費(或合法付費)的解密方案出現。 關於這點,我們就要從加密開始說起。
加密(Encryption)是將訊息或資訊編碼的過程,即:將明文訊息轉換成密文,之後可以再解碼回原始訊息,並以只有獲授權者才能存取的方式進行。加密演算法(encryption algorithm)搭配金鑰,用於資料的加密與解密。資料加密有多種類型,而加密方案通常以區塊密碼(block cipher)或串流密碼(stream cipher)為基礎。
許多加密方案都針對 CPU(電腦硬體規格)進行最佳化,讓惡意軟體可以非常快速地加密資料區塊。依照資料檔案的數量、大小,以及惡意軟體開發者的設計意圖等不同因素,加密可能只需要幾秒鐘、幾分鐘,也可能需要數小時。
能否解密檔案,取決於你遭遇的是哪一種勒索軟體、惡意軟體作者所使用的加密類型與強度,以及其他多種因素。所有加密型惡意勒索軟體都會使用某種形式的加密演算法,其中大多數演算法本身都很安全且難以破解。因此,能否解密取決於惡意軟體作者實作得是否嚴謹、採用了哪一種加密演算法、是否能找到任何缺陷,有時甚至只是單純靠運氣。即使對惡意軟體本身進行逆向工程,也不代表專家一定能破解其加密,尤其是在沒有已知漏洞的情況下。
惡意軟體開發者通常會使用公鑰與私鑰系統:公鑰用於加密,私鑰用於解密。私鑰則存放在網路犯罪者所維護的中央伺服器上,因此破解難度更高。除非執法機關最終追查到並逮捕犯罪者、查扣其命令與控制伺服器(Command and Control, C2),找到私有 RSA 解密金鑰,再將這些金鑰公開。網路犯罪者通常也不會持續使用容易遭到破解的方法。
以目前技術而言,暴力破解(Brute-force)解密金鑰並不可行。要透過量子運算破解,則需要能夠執行秀爾演算法。原因在於金鑰是透過複雜的數學運算產生,可能需要嘗試極其龐大的組合數量,而且破解一把私有加密金鑰所需的時間非常漫長。有些勒索軟體,例如 Conti,會針對每個檔案使用一把獨立的 AES-256 加密金鑰,再以每位受害者專屬、內建於惡意軟體中的 RSA-4096 公開加密金鑰進一步加密該 AES 金鑰。BleepingComputer 專家認為,距離實際使用量子電腦破解加密,可能還需要數年時間。
Dr.Web 說到,勒索軟體使用數十種不同加密演算法來加密檔案,以 Trojan.Encoder.741 為例,需要 107,902,838,054,224,993,544,152,335,601 年(十穰七千九百零二秭八千三百八十垓五千四百二十二京四千九百九十三兆五千四百四十一億五千二百三十三萬五千六百零一年)搜尋到還原檔案的私密金鑰。
Trojan.Encoder programs (Cryptolockers) use dozens of different encryption algorithms of users’ files. For example, it will take 107,902,838,054,224,993,544,152,335,601 years to simple search a key to restore files compromised by Trojan.Encoder.741. - Encryption ransomware—Threat № 1
如果沒有犯罪者的主私有加密金鑰來解密檔案,就無法進行解密。通常每位受害者使用的金鑰都是唯一的,而且會以安全方式產生(例如 RSA、AES、Salsa20、ChaCha20、EDA2、ECDH、ECC、ECIES,或多種加密方式的組合),因此無法透過暴力破解取得;單憑加密檔案時所使用的公鑰,對解密毫無幫助。大多數情況下,除非金鑰遭到外洩,或犯罪者被執法機關逮捕、金鑰被取得並公開,否則任何人都無法提供可行的解密方案。
根據 Demonslay335(Michael Gillespie)在貼文 #1307中的說法:
AES-192 and AES-256 is more or less resilient to quantum computing. AES-128 is the only version that would "possibly" be broken by quantum computing.(AES-192 與 AES-256 對量子運算或多或少具有抵抗能力。AES-128 是唯一「可能」被量子運算破解。)
量子電腦技術在擴展規模時,一直面臨一項重大障礙:無法透過反覆複製編碼資料來自行修正錯誤。然而,Microsoft 開發了量子電腦用的 Majorana 1 量子晶片,它採用拓撲核心(topological core),設計目標是在單一晶片上擴展至一百萬個量子位元(qubits),並且具備可靠的「量子錯誤修正」(Quantum Error Correction, QEC)。這表示,勒索軟體受害者未來或許有機會恢復遭加密的資料。
資料復原(Data Recovery)是救回(取回)無法存取、遺失、刪除、毀損、損壞或已格式化資料的過程。由於 Windows NTFS 檔案系統會保存檔案描述資訊,因此資料復原軟體可以利用這些資訊,更容易找到相關檔案。資料復原軟體會使用複雜演算法,在硬碟中搜尋仍可復原的資訊片段(fragments),藉此推測檔案原本實際儲存的位置。接著,復原程式會嘗試將這些資訊重新組合成可以救回的格式。然而,如果資料已遭覆寫,就無法保證能夠完整復原。資料復原並不等於解密已加密的資料。
面對勒索軟體時,在某些情況下,使用檔案復原軟體(如:Recuva)可能有助於復原(復原非解密)部分原始檔案,但無法保證一定有效。不過,仍值得嘗試,因為惡意軟體可能沒有完全照原本設計執行。勒索軟體感染有時會未完成整個加密程序、未刪除所有陰影複製快照(Shadow Copy snapshots)、未留下勒索訊息,或未加上副檔名。這種情況並不少見,尤其是在加密程序發生錯誤、惡意軟體程式碼品質不佳、只對檔案進行部分加密(例如大型檔案只加密開頭或結尾幾 KB)、受到防毒軟體阻擋,或受害者發現後立刻關機。
也有部分受害者提到,透過 回復到先前的 Windows 版本,或使用 ShadowExplorer、ShadowCopyView 等程式成功復原資料。因此,嘗試這類替代方法始終是一種選項。
注意:有些勒索軟體(例如 Prince)在設計時的主要目的就是讓傳統資料復原工具無法恢復檔案,確保只有指定的解密工具才能還原受影響檔案。Wiper/Eraser 勒索軟體則是以徹底破壞資料為目的。
部分勒索軟體(STOP Djvu、LockFile、BlackCat(ALPHV)、Qyick、Agenda、Black Basta、LockBit 2.0、DarkSide、BlackMatter、Ryuk、Nemty、Play)只會對檔案進行部分加密(尤其是大型檔案,可能只加密開頭與/或結尾若干 KB)。這是一種刻意採用的策略,用來躲避偵測並盡可能快速地加密資料(在任何人注意到之前),因此惡意軟體實際上不會讀取、寫入或加密整份資料。
由於檔案可能只有部分區域真正遭到加密,因此面對某些勒索軟體感染時,資料復原程式有時能夠救回部分檔案;但如果資料已被覆寫,這類工具就無法發揮作用。對另外幾種類型的勒索軟體而言,甚至**可能透過人工方式復原/重建(檔案修復)**某些檔案格式(例如 .JPG 與 .MP4),因為惡意軟體可能只加密檔案中的 150 KB;
Demonslay335的說明。
不幸的是,部分加密經常會造成檔案毀損,使加密資料變得無法使用。因為對這些檔案而言,加密通常是不可逆的:加密程式碼可能會使用檔案另一部分的加密資料覆寫原本的一部分內容,而遭覆寫的資料沒有辦法再恢復。
雖然嘗試上述方法並沒有壞處,但最後你仍可能別無選擇,只能將已加密的資料依原狀備份/保存,並等待未來可能出現的解決方案。
**注意:**檔案被刪除、加密或毀損後,電腦使用得越多,資料復原程式就越難復原任何已刪除、未加密且未毀損的資料。**從資料遺失發生到嘗試復原之間,對硬碟所進行的操作越少,成功復原部分或全部檔案的機率就越高。**遺失資料的硬碟使用得越多,復原機率就越低,因為新的資料可能被寫入硬碟,進而覆寫並摧毀原本仍可能被復原的已刪除檔案。
當你刪除一個檔案時,其內容實際上仍會保留在儲存媒體中,只是原本占用的空間會被標示為可用。下一個儲存到磁碟上的檔案,就可能覆寫已刪除檔案的內容。因此,**資料遺失後越早嘗試復原,成功救回資料的可能性就越高。**同樣非常重要的是,必須確保沒有任何應用程式(包括資料復原程式本身)對已刪除檔案所在的磁碟機或磁碟分割區進行寫入,因為每一個新檔案都有可能覆寫原本已刪除但仍可復原的檔案。
如果磁碟機尚未進行磁碟重組,成功機率也會更高。另外,應將資料復原程式安裝並執行在不同於待復原檔案所在磁碟機的位置,例如第二顆硬碟、獨立磁碟分割區或 USB 隨身碟,否則復原程式本身就可能覆寫仍可救回的檔案。你也可以將原始硬碟以從屬磁碟(slave drive)的方式連接,並將復原軟體安裝在另一顆新的磁碟機上。